package com.baishancloud.log.util;

import org.apache.commons.lang3.StringUtils;

import java.util.ArrayList;
import java.util.List;
import java.util.Objects;

/**
 * @author ziqiang.wang
 * @date 2022/3/29 19:18
 */
public class StringUtil {

    /**
     * 将指定字符串按照指定分隔符号进行分隔
     *
     * @param value         原始字符串
     * @param separatorChar 指定分隔符号
     * @return 返回最令人满意的结果，开始位置和结束位置为分隔符号时，也会在对应位置设置空字符串
     */
    public static List<String> split(String value, char separatorChar) {
        List<String> result = new ArrayList<>();
        if (StringUtils.isEmpty(value)) {
            return result;
        }
        StringBuilder temp = new StringBuilder();
        for (char aChar : value.toCharArray()) {
            if (!Objects.equals(aChar, separatorChar)) {
                // 如果不是分隔字符串，则将该位置字符进行拼接
                temp.append(aChar);
            } else {
                // 如果是分隔字符串，则将之前的所有字符串写出到结果列表
                result.add(temp.toString());
                temp.delete(0, temp.length());
            }
        }
        if (value.endsWith(String.valueOf(separatorChar))) {
            result.add("");
        }
        return result;
    }

}
